﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace _2._12._2015_Smartphone.Models
{
    public abstract class SmartPhone
    {
        public bool HasGPS { get; set; }
        public bool MakeCall { get; set; }
        public AssistantType Assistant { get; private set; }

        public SmartPhone(AssistantType type)
        {
            this.Assistant = type;
        }
    }

    public class iPhone : SmartPhone
    {
        public string SaphireVendor { get; set; }
        public iPhone() : base(AssistantType.Siri)
        {
        }
    }

    public class Android : SmartPhone
    {
        public string FavoriteWidget { get; set; }
        public Android() : base(AssistantType.GoogleNow)
        {
        }
    }

    public class WindowsPhone : SmartPhone
    {
        public int NumberOfTiles { get; set; }
        public WindowsPhone() : base(AssistantType.Cortana)
        {
        }
    }

    public enum AssistantType
    {
        Siri,
        Cortana,
        GoogleNow
    }

    public class IndexViewModel
    {
        public string Name { get; set; }
        public List<SmartPhone> SmartPhones { get; set; }
    }

    public class iPhoneViewModel
    {
        public List<iPhone> SmartPhones { get; set; }
    }

    public class AndroidViewModel
    {
        public List<Android> SmartPhones { get; set; }
    }

    public class WindowsPhoneViewModel
    {
        public List<WindowsPhone> SmartPhones { get; set; }
    }

    public class CreateViewModel
    {
        public bool HasGPS { get; set; }
        public bool MakeCall { get; set; }
        public int NumberOfTiles { get; set; }
    }
}